This disclosure relates generally to signal processing using linear transforms. More particularly, the disclosure relates to techniques for noise reduction, noise shaping, and gradient-based image processing in the linear transform domain.
Wavelet transforms provide a useful tool for various forms of signal processing. For example, wavelet transforms can be used for digital file compression and to perform correction operations such as noise reduction. Referring to FIG. 1, application of the Haar wavelet transform to a simple eight point signal 105 demonstrates the basic concepts of wavelet transforms. At each stage, the Haar transform converts an input signal into two sets of signals by applying a low-pass filter and a high-pass filter. For the Haar transform illustrated in FIG. 1, application of the low-pass filter results in an output signal that includes the averages of adjacent signal pairs
  (            e      .      g      .        ,                            f          ⁡                      (            0            )                          +                  f          ⁡                      (            1            )                              2        ,                            f          ⁡                      (            2            )                          +                  f          ⁡                      (            3            )                              2        ,    …    ⁢          )and application of the high-pass filter results in an output signal that includes the differences between adjacent signal pairs
      (                  e        .        g        .            ,                                    f            ⁡                          (              0              )                                -                      f            ⁡                          (              1              )                                      2            ,                                    f            ⁡                          (              2              )                                -                      f            ⁡                          (              3              )                                      2            ,      …        ⁢                  )    .By feeding the low-pass filter output signal through consecutive stages of the transform, a hierarchical representation (i.e., a wavelet pyramid representation) of the initial input signal can be obtained. The wavelet pyramid has N+1 scales where N is equal to the number of stages of the transform. Processing eight point signal 105 through three stages of the Haar transform results in a four scale pyramid having signals of lengths 4, 2, 1, and 1 (i.e., H1=−1, −0.5, −0.5, 0.5, H2=−0.25, 1, H3==1.125, L3=4.375). The output of the low-pass filter at the coarsest scale is the low-pass residual and represents its own scale of the wavelet pyramid. It will be understood that this wavelet representation is invertible in that it can be used to recover input signal 105. That is, performance of an inverse wavelet transform re-creates an input signal from its wavelet representation. Although FIG. 1 has been described with reference to the Haar wavelet transform, the techniques disclosed in this specification are applicable to any invertible linear transform such as other types of wavelet transforms, curvelet transforms, dual tree complex wavelet transforms, ridgelet transforms, etc.
FIG. 2 illustrates a popular approach to signal noise reduction. Application of a multi-stage wavelet transform to input signal 205 may generate a four-scale wavelet representation of signal 205 where the magnitude of the wavelet coefficients at each of scales 215A/B/C/D is illustrated by vertical bars. It should be noted that the illustrated wavelet representation is intended to demonstrate a common noise reduction technique and not to depict an accurate wavelet representation of input signal 205 using any particular wavelet transform. The multi-stage wavelet transform applied to input signal 205 results in a “clean” wavelet representation of the input signal. That is, for portions of input signal 205 that are substantially constant, the wavelet transform results in wavelet coefficients that are near zero in value. This is precisely the property that makes wavelet transforms valuable for data compression. However, application of the same multi-scale transform to input signal 210 (a noisy version of input signal 205), results in a “noisy” wavelet representation. A comparison of corresponding portions 225 and 230 of the wavelet representations of signals 205 and 210 illustrates that the noise in signal 210 results in small magnitude wavelet coefficients that substantially represent noise in addition to large magnitude wavelet coefficients that substantially represent signal. The wavelet shrinkage operation reduces the magnitude of or eliminates wavelet coefficients within a particular range (e.g., within range 235) and leaves unmodified wavelet coefficients outside of the range such that, upon performance of an inverse wavelet transform, a cleaner version of the input signal is generated. For example, application of the wavelet shrinkage operation on the wavelet representation of signal 210 would result in a wavelet representation that more closely approximates the wavelet representation of signal 205, and, thus, a signal that more closely approximates signal 205 upon performance of an inverse wavelet transform.
Although the wavelet shrinkage operation effectively reduces signal noise, it also alters the magnitude relation between wavelet coefficients at different scales and the same spatial location, which results in the production of undesirable artifacts around strong edges. Various solutions exist to reduce the prominence of these undesirable artifacts. For example, bivariate wavelet shrinkage limits the amount of modification applied to wavelet coefficients around strong edges by reducing the amount of modification applied to a wavelet coefficient if a corresponding parent coefficient from one scale up the wavelet pyramid has a large magnitude (which implies the presence of a strong edge). An improvement over the bivariate wavelet shrinkage operation is to use Hidden Markov Models to explicitly model the probability of having an edge at a current spatial location (big magnitudes of wavelet coefficients) versus no edge (small magnitudes of wavelet coefficients). Both operations successfully reduce the magnitude of artifacts around strong edges, but because they limit the amount of modification applied to the wavelet coefficients around edges, the noise reduction is limited in these areas, which results in noticeable noise around edges in the output signal when there is heavier noise in the input signal. Moreover, in the presence of heavy noise, fine noise-like texture (such as skin pores, grass, and foliage) can be completely masked. In such cases, noise reduction also removes the desirable fine texture and results in an output image that looks flat and unnatural. A common solution is to reduce the strength of the noise reductions such that the fine texture is maintained, but this too has its drawbacks. It would therefore be desirable to perform noise reduction and shaping operations in the wavelet domain that reduce or eliminate these issues.